Add cascading live dropdowns for Workspace, Client, Project and Task#53
Open
StefanHiersekorn wants to merge 8 commits into
Open
Add cascading live dropdowns for Workspace, Client, Project and Task#53StefanHiersekorn wants to merge 8 commits into
StefanHiersekorn wants to merge 8 commits into
Conversation
Owner
|
Awesome, thank you! I'm currently traveling, so it will take a bit for me to review this in full. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Today the Property Inspector requires you to type the Workspace, Client, Project and
Task names by hand and match them exactly to what exists in Clockify. A single typo
silently results in no timer being found.
This PR turns those four fields into live dropdowns populated directly from your
Clockify account, with a per-field freetext fallback so nothing is lost when manual
entry is needed.
What's new
the API is unreachable, a list is very long, or you want to create a brand-new task
that does not exist yet).
values remain the human-readable names, not IDs).
How it works
ClockifyLookupServiceperforms the lookups (workspaces / clients /projects / tasks → name lists). It is stateless and shares no state with the existing
ClockifyService.sendToPlugin/sendToPropertyInspectorchannel;ToggleActionhandles the requestsin
OnSendToPluginand replies viaSendToPropertyInspectorAsync. The way settings arepersisted is unchanged.
clockify-pi.jsdrives the cascading UI; the vendored EasyPI library is leftuntouched.
Backward compatibility
PluginSettingsonly gains four optional*Manualboolean flags (defaultfalse).Existing buttons keep working unchanged; stored values remain human-readable names.
Testing
LookupMapping) pass.win-x64.the cascade filters correctly, existing selections are restored, the freetext toggle
round-trips across reopen, refresh works, and starting/stopping a timer still works.